package com.chengcang.api.modules.busi.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 
 *
 * @author Zhanli xy321231@163.com
 * @since 1.0.0 2023-01-10
 */
@Data
@ApiModel(value = "")
public class BusiOrderDTO implements Serializable {
    private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "主键")
	private Long id;

	@ApiModelProperty(value = "客户外键")
	private Long tenantId;

	@ApiModelProperty(value = "甲方ID")
	private Long paId;

	@ApiModelProperty(value = "甲方name")
	private Long paName;

	@ApiModelProperty(value = "订单编号")
	private String orderNo;

	@NotNull(message = "需求单号不能为空")
	@ApiModelProperty(value = "需求编号")
	private String demandNo;

	//todo 应该是没用, 待跟业务确认
	@ApiModelProperty(value = "订单金额")
	private BigDecimal totalAmount;

	@ApiModelProperty(value = "不含增值税金额")
	private BigDecimal noVatPrice;

	@ApiModelProperty(value = "增值税")
	private BigDecimal vat;

	@ApiModelProperty(value = "合同总价")
	private BigDecimal contractTotalPrice;

	@ApiModelProperty(value = "卖家收款金额")
	private BigDecimal sellerReceivePrice;

	@ApiModelProperty(value = "平台代收税费")
	private BigDecimal platformTakeTaxPrice;

	@ApiModelProperty(value = "订单状态,0:待付款; 1:待发货; 2:已发货; 3:已完成; 4:已关闭")
	private Integer status;

	@ApiModelProperty(value = "订单状态描述")
	private String statusName;

	@ApiModelProperty(value = "支付状态")
	private Integer payStatus;

	@ApiModelProperty(value = "支付状态描述")
	private String payStatusName;

	@ApiModelProperty(value = "订单来源")
	private Integer sourceType;

	@ApiModelProperty(value = "订单来源描述")
	private String sourceTypeName;

	@ApiModelProperty(value = "订单类型")
	private Integer type;

	@ApiModelProperty(value = "订单类型描述")
	private String typeName;

	@ApiModelProperty(value = "需求方ID")
	private Long demandId;

	@ApiModelProperty(value = "需求方名字")
	private String demandName;

	@ApiModelProperty(value = "供应方ID")
	private Long supplyId;

	@ApiModelProperty(value = "供应方名字")
	private String supplyName;

	@NotNull(message = "商品信息不能为空")
	@ApiModelProperty(value = "商品信息外键")
	private Long productId;

	@NotNull(message = "收获地址不能为空")
	@ApiModelProperty(value = "收货地址外键")
	private Long addressId;

	@NotNull(message = "发票信息不能为空")
	@ApiModelProperty(value = "发票抬头外键")
	private Long invoiceHeadId;

	@ApiModelProperty(value = "物流信息（车牌号）")
	private String deliveryInfo;

	@NotNull(message = "供应数量不能为空")
	@ApiModelProperty(value = "供应数量")
	private BigDecimal supplyNum;

	@ApiModelProperty(value = "是否删除")
	private Integer deleted;

	@ApiModelProperty(value = "创建人")
	private Long creator;

	@ApiModelProperty(value = "创建时间")
	private Date createDate;

	@ApiModelProperty(value = "更新人")
	private Long updater;

	@ApiModelProperty(value = "更新时间")
	private Date updateDate;

	@ApiModelProperty(value = "单位")
	private String productUnit;

	@ApiModelProperty(value = "单价")
	private BigDecimal price;

	@ApiModelProperty(value = "需求数量")
	private BigDecimal demandTotal;

	@ApiModelProperty(value = "过期时间")
	private Date demandExpire;

}